# sms/signals.py
from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import User

@receiver(post_save, sender=User)
def update_related_models_phone(sender, instance, created, **kwargs):
    """
    当用户手机号更新时，同步更新相关模型的手机号
    信号处理器会在User模型保存后被调用
    """
    if created:  # 如果是新建记录，不需要处理
        return
    
    try:
        # 获取保存前的用户数据
        old_user = User.objects.get(pk=instance.pk)
        
        # 检查手机号是否变更
        if old_user.phone != instance.phone and instance.phone:
            # 更新厨师表中的手机号（如果有单独的厨师模型）
            if hasattr(instance, 'chef_profile'):
                instance.chef_profile.phone = instance.phone
                instance.chef_profile.save()
            
            # 可以添加其他需要同步手机号的模型
            # 例如：if hasattr(instance, 'consumer_profile'):
            #     instance.consumer_profile.phone = instance.phone
            #     instance.consumer_profile.save()
            
    except User.DoesNotExist:
        pass